package eg.ci.mvn.service.api.constant;


import eg.ci.mvn.service.api.dict.DictItemBean;
import eg.ci.mvn.service.api.dict.IDictItem;
import lombok.Getter;

/**
 * 卡证类型标志 1-临停 2-访客车 3-白名单 4-黑名单 5-月卡
 */
@Getter
public enum CardClassifyEnum implements IDictItem {

    /** 临时车证 0 */
    PARKING_CAR("parkingCar", "临停车证", "1"),

    /** 访客车证 2 */
    VISITOR_CAR("visitorCar", "访客车证", "2"),

    /** 白名单证 3 */
    WHITE_LIST("whiteList", "白名单证", "3"),

    /** 黑名单证 4 */
    BLACK_LIST("blackList", "黑名单证", "4"),

    /** 自定义卡证 5 */
    CUSTOM_CAR("customCar", "月卡车证", "5"),

    /** 未知 */
    UNKNOWN("unknown", "未知", "-1");

    /** 字典枚举目录 */
    private final static String CATEGORY = "CardClassifyEnum";
    /** 字典枚举目录 LABEL */
    private final static String CATEGORY_LABEL = "卡证类型枚举项";

    /** 构造 */
    CardClassifyEnum(String item, String itemLabel, String itemValue) {
        putDictItem(DictItemBean.builder()
                .category(CATEGORY)
                .categoryLabel(CATEGORY_LABEL)
                .item(item)
                .itemLabel(itemLabel)
                .itemValue(itemValue)
                .build());
    }

    public static String getEnumItemLabel(final String itemValue) {
        return IDictItem.getEnumItemLabel(CardClassifyEnum.class, itemValue, UNKNOWN.itemLabel() + "(" + itemValue+ ")");
    }

    public static CardClassifyEnum getEnumAtItemValue(String itemValue) {
        return IDictItem.getEnum(CardClassifyEnum.class, itemValue, UNKNOWN);
    }

}
